home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Champak 29
/
Volume 29 - JOGO DISK .iso
/
Games
/
jungle_adventure.swf
/
scripts
/
__Packages
/
SSLevel.as
< prev
next >
Wrap
Text File
|
2006-11-29
|
7KB
|
244 lines
class SSLevel
{
var startNode = "Start";
var startX = 0;
var startY = 0;
var levelLeft = 0;
var levelRight = 0;
var levelTop = 0;
var levelBottom = 0;
var current = 0;
var total = 0;
var pauseTime = 20;
var ready = false;
var editor_docObject = true;
var editor_args_names = ["levelName","preProcess","background","startNode","music"];
var editor_args_values = ["name","preProcess","background","Start","music"];
var editor_args_types = ["string","string","string","string","string"];
var editor_args_options = ["A-Za-z0-9","A-Za-z","A-Za-z0-9","A-Za-z0-9","A-Za-z0-9"];
var editor_args_descriptions = [];
var editor_args_mode = [0,0,0,0,0];
var editor_args_component = ["TextInput","TextInput","TextInput","TextInput","TextInput"];
var editor_commands = [];
function SSLevel(x)
{
this.worldConstructor = GameWorld;
this.objects = [];
switch(typeof x)
{
case "string":
this.name = x;
break;
case "object":
this.readXML(x);
}
}
function addObject()
{
this.objects.push(arguments);
}
function readXML(xObj)
{
this.ready = false;
var wn = xObj.firstChild;
var attr = wn.attributes;
this.name = attr.levelName;
this.preProcess = eval(attr.preProcess);
this.background = _global[attr.background];
this.startNode = attr.startNode;
this.music = attr.music;
var a;
var i = -1;
var c = a = wn.childNodes.length;
while(++i < c)
{
if(a[i].nodeName === "objects")
{
this.readObjects(wn.firstChild);
}
}
this.readXMLComplete();
}
function readObjects(node)
{
var types = node.attributes.types.split(",");
var objData = node.firstChild.nodeValue;
var i = types.length;
while(--i > -1)
{
types[i] = eval(types[i]);
}
var aObjs = objData.split(SSGlobal.ED_OBJ_DELIMETER);
var objAttrDelim = SSGlobal.ED_OBJ_ATTR_DELIM;
var i = -1;
var c = aObjs.length;
while(++i < c)
{
var a = aObjs[i].split(objAttrDelim);
var j = a.length;
a[0] = types[a[0]];
while(--j)
{
var v = a[j];
if(v == "")
{
a[j] = null;
}
else
{
var char = v.charAt(0);
if(char == "\"" || char == "\'")
{
a[j] = v.substring(1,v.length - 1);
}
else
{
v = Number(v);
if(isNaN(v))
{
var tmp = eval(a[j]);
if(tmp != null)
{
a[j] = tmp;
}
}
else
{
a[j] = v;
}
}
}
}
this.addObject.apply(this,a);
}
}
function readXMLStep()
{
}
function readXMLComplete()
{
clearInterval(this.processID);
delete this.processID;
this.ready = true;
this.onReadXMLComplete();
}
function build(base)
{
this.ready = false;
var _loc4_ = new this.worldConstructor(this.name);
_loc4_.name = this.name;
base.addWorld(_loc4_);
this.levelLeft = this.levelTop = 268435455;
this.levelRight = this.levelBottom = -268435455;
this.preProcess(base,_loc4_);
if(typeof this.background == "function")
{
this.background(_loc4_);
}
else
{
var _loc3_ = this.background.layers.length;
while((_loc3_ = _loc3_ - 1) > -1)
{
var _loc2_ = {};
_loc2_.__proto__ = this.background.layers[_loc3_];
_loc4_.addBackground(_loc2_);
}
}
this.processObjects(base,_loc4_);
return _loc4_;
}
function processObjects(base, ssw)
{
this.lastTime = getTimer();
this.current = -1;
this.total = this.objects.length;
this.intervalID = setInterval(function(o, base, ssw)
{
o.objectsStep(base,ssw);
}
,0,this,base,ssw);
}
function objectsStep(base, ssw)
{
var _loc4_ = Math.abs(getTimer() - (this.lastTime = getTimer()));
while(++this.current < this.total)
{
var _loc2_ = this.objects[this.current];
this.processObject(ssw,_loc2_);
}
if(this.current == this.total)
{
this.complete(base,ssw);
clearInterval(this.intervalID);
}
updateAfterEvent();
}
function processObject(ssw, aData)
{
var _loc12_ = aData[1];
var _loc11_ = aData[2];
var _loc10_ = aData[3];
var _loc4_ = aData[0];
var _loc5_ = aData[4];
var _loc7_ = aData[5] != null ? Number(aData[5]) : _loc4_.prototype.depthLayer;
var _loc8_ = aData[6] != null ? aData[6] : null;
var _loc6_ = !(aData[7] == null || aData[7] == "") ? aData[7] : null;
var _loc9_ = aData.slice(10);
if(_loc4_ == null)
{
return false;
}
var _loc2_ = {};
_loc2_.__proto__ = _loc4_.prototype;
if(_loc4_ == SSShapeInstance)
{
_loc4_.call(_loc2_,ssw.shapes[_loc9_[0]]);
}
else
{
_loc4_.apply(_loc2_,_loc9_);
}
_loc2_.x = _loc12_;
_loc2_.y = _loc11_;
_loc2_.z = _loc10_;
if(_loc5_ != "" && _loc5_ != null)
{
_loc2_.assetID = _loc5_;
}
if(_loc7_ != _loc2_.depthLayer)
{
_loc2_.depthLayer = Number(_loc7_);
}
if(_loc8_ != null)
{
_loc2_.frame = _loc8_;
}
if(_loc6_ != null)
{
_loc2_.name = _loc6_;
}
ssw.addObject(_loc2_);
this.levelLeft = Math.min(this.levelLeft,_loc2_.left);
this.levelTop = Math.min(this.levelTop,_loc2_.top);
this.levelRight = Math.max(this.levelRight,_loc2_.right);
this.levelBottom = Math.max(this.levelBottom,_loc2_.bottom);
}
function complete(base, ssw)
{
this.ready = true;
ssw.levelLeft = this.levelLeft;
ssw.levelTop = this.levelTop;
ssw.levelRight = this.levelRight;
ssw.levelBottom = this.levelBottom;
this.onComplete(base,ssw);
}
function onStatus()
{
}
function toString()
{
return "SSLevel " + this.name;
}
}